package 数据结构OJ;

class ListNode {
    int val;
    ListNode next;
    ListNode(int x) { val = x; }
}
//快慢指针法
public class 环形链表_08 {

    public boolean hasCycle(ListNode head) {
        if(head == null ||head.next == null)
            return false;
        ListNode fast = head;
        ListNode slow = head;
        while(fast != null && fast.next != null) {
            fast = fast.next.next;
            slow = slow.next;
            if(fast == slow)
                return true;
        }
        return false;
    }
}

//断链法

 class Solution_1 {

    public ListNode EntryNodeOfLoop(ListNode node){
        if(node == null || node.next == null)
            return null;
        ListNode prev = node;
        ListNode cur = node.next;
        while(cur != null) {
            prev.next = null;
            prev = cur;
            cur = cur.next;

        }
        return prev;
    }
}